chia sẻ code chuyển pdf sang word bằng python
Sử dụng PyMuPDF để chuyển đổi PDF sang word trong lập trình Python
1. Sử dụng thư viện PyMuPDF
PyMuPDF (còn được gọi là fitz) là một thư viện Python dùng để xử lý các tệp PDF. Thư viện này có thể chuyển đổi tệp PDF sang word , hoặc thành hình ảnh hoặc trích xuất nội dung văn bản, sau đó chèn nội dung đó vào tài liệu Word.
Code:
import fitz
# Mở tệp PDF
pdf_document = "input.pdf"
doc = fitz.open(pdf_document)
output_word = "output.docx"
text = ""
# Duyệt qua từng trang và trích xuất nội dung văn bản
for page_num in range(len(doc)):
page = doc[page_num]
text += page.get_text()
# Ghi nội dung văn bản trích xuất được vào tài liệu Word
with open(output_word, "w") as f:
f.write(text)
Lưu ý thường gặp và cách khắc phục:
Vấn đề phân tách trang dẫn đến nội dung văn bản lộn xộn:
- Khi nối nội dung văn bản của mỗi trang, cần thêm ký tự xuống dòng để đảm bảo định dạng rõ ràng.
Sửa:
for page_num in range(len(doc)):
page = doc[page_num]
text += page.get_text() + "\n" # Thêm ký tự xuống dòng
Vấn đề mã hóa ký tự đặc biệt:
- Khi xử lý các ký tự đặc biệt, sử dụng mã hóa thích hợp, ví dụ
utf-8
.
Sửa:
with open(output_word, "w", encoding="utf-8") as f:
f.write(text)
Phân tích mã:
- Import thư viện:
- Thư viện
fitz
(từ PyMuPDF) được sử dụng để mở tệp PDF và trích xuất văn bản từ các trang.
- Mở tệp PDF:
fitz.open(pdf_document)
mở tệp PDF được chỉ định (input.pdf
), tạo một đối tượng tài liệu PDF để xử lý.
- Trích xuất văn bản từ mỗi trang:
for page_num in range(len(doc)):
duyệt qua từng trang của tệp PDF.page.get_text()
trích xuất nội dung văn bản từ một trang cụ thể.
- Ghép văn bản từ các trang:
- Biến
text
được sử dụng để lưu trữ toàn bộ nội dung văn bản của tài liệu bằng cách nối từng trang.
- Ghi văn bản vào tệp Word:
with open(output_word, "w", encoding="utf-8") as f:
mở tệp Word ở chế độ ghi (write
) với mã hóa utf-8
.f.write(text)
ghi toàn bộ nội dung văn bản vào tệp.
Xem bài viết demo : Hướng Dẫn Chuyển PDF Sang Word Nhanh Chóng, Hiệu Quả
Những điểm cần chú ý:
- Đảm bảo tính rõ ràng của nội dung văn bản: Thêm ký tự xuống dòng
\n
sau mỗi trang để phân tách nội dung, tránh bị lẫn lộn. - Mã hóa ký tự: Nếu văn bản có chứa các ký tự đặc biệt (như tiếng Việt), mã hóa
utf-8
là bắt buộc để giữ nguyên nội dung khi ghi tệp. - Hạn chế của PyMuPDF: Thư viện này chủ yếu trích xuất văn bản thuần, không bao gồm định dạng như bảng, ảnh hoặc các kiểu phông chữ phức tạp.
Cách cải tiến:
- Giữ định dạng PDF trong Word: Nếu cần định dạng (bố cục, hình ảnh), hãy kết hợp thêm các thư viện khác như
python-docx
để tạo tài liệu Word có cấu trúc tốt hơn. - Xử lý PDF lớn: Với các tệp PDF lớn, cần tối ưu hóa bằng cách lưu kết quả tạm thời hoặc xử lý theo trang để tránh việc sử dụng quá nhiều bộ nhớ.
- Nguồn bài viết : Sử dụng PyMuPDF để chuyển đổi PDF sang word trong lập trình Python